import {
	mapGetters,
	mapActions
} from 'vuex'
export default {
	data() {
		return {

		}
	},
	computed: {
		...mapGetters([
			'hasLogin',
			'userInfo',
			'banList',
			'api_host',
			'config',
			'menuWidth'
		])
	},
	onShow(){
		
	},
	filters: {
		formatDateTime(dateTimeStr) {  
		  // 假设dateTimeStr是形如"YYYY-MM-DD HH:mm:ss"的字符串  
		  const dateTime = new Date(dateTimeStr);  
		    
		  // 检查日期是否有效  
		  // if (isNaN(dateTime.getTime())) {  
		  //   throw new Error('Invalid date time string');  
		  // }  
		    
		  // 获取并格式化日期和时间的各个部分  
		  const year = dateTime.getFullYear();  
		  const month = String(dateTime.getMonth() + 1).padStart(2, '0'); // 月份从0开始，所以需要+1  
		  const day = String(dateTime.getDate()).padStart(2, '0');  
		    
		  // 使用模板字符串进行格式化  
		  return `${year}年${month}月${day}日`;  
		}
	},
	onShareAppMessage(res) {
		return {
			title: '东楚畅通',
			path: '/pages/index/index',
			desc: '东楚畅通',
			content: '东楚畅通',
			success(res) {
				uni.showToast({
					title: '分享成功'
				})
			},
			fail(res) {
				uni.showToast({
					title: '分享失败',
					icon: 'none'
				})
			}
		}
	},
	methods: {
		...mapActions(['getUserinfo']),
		/**
		 * 确保获取到用户信息，如果没有则主动获取
		 * @returns {Promise<Object|null>} 返回用户信息对象，如果获取失败返回null
		 */
		async ensureUserInfo() {
			// 如果用户信息已存在且有id，直接返回
			if (this.userInfo && this.userInfo.id) {
				return this.userInfo
			}
			
			try {
				// 主动获取用户信息
				await this.getUserinfo()
				
				// 再次检查
				if (this.userInfo && this.userInfo.id) {
					return this.userInfo
				}
				
				console.log('用户信息获取失败或用户未登录')
				return null
			} catch (error) {
				console.error('获取用户信息时出错:', error)
				return null
			}
		},
		
		/**
		 * 获取用户ID，自动处理异步加载
		 * @returns {Promise<string|number|null>} 返回用户ID，如果获取失败返回null
		 */
		async getUserId() {
			const userInfo = await this.ensureUserInfo()
			return userInfo ? userInfo.id : null
		},
		
		leftBack(){
			let pages = getCurrentPages();
			if (pages.length > 1) {
			    uni.navigateBack()
			} else {
			    uni.reLaunch({
			    	url:'/pages/index/index'
			    })
			}
		},
		maketel(phonenum) {
			uni.makePhoneCall({
				phoneNumber: phonenum
			})
		},
		toastTips(text) {
			uni.showToast({
				title: text,
				icon: 'none'
			})
		},
		copytext(text) {
			uni.setClipboardData({
				data: text,
				success() {
					uni.showToast({
						title: '复制成功',
						icon: 'none'
					})
				}
			})
		},
		async starlikeBtn(operation,busine,speId){
			if (!this.hasLogin) {
				this.toLogin()
				return false
			}
			const res = await this.$utils.userLike(operation,busine,speId)
			if(operation == 1){
				if(this.detail.isCollection == 1){
					uni.showToast({
						title:'已取消收藏',
						icon:'none'
					})
					this.detail.collectionVolume = this.detail.collectionVolume - 1
				}else{
					uni.showToast({
						title:'收藏成功 \r\n 在[我] - [收藏] 查看',
						icon:'none'
					})
					this.detail.collectionVolume = Number(this.detail.collectionVolume) + 1
				}
				this.detail.isCollection = this.detail.isCollection == 1?0:1
			}else{
				if(this.detail.isLike == 1){
					this.detail.likeVolume = this.detail.likeVolume - 1
				}else{
					this.detail.likeVolume = Number(this.detail.likeVolume) + 1
				}
				this.detail.isLike = this.detail.isLike == 1?0:1
			}
		},
		toLogin(){
			uni.showModal({
				title:'提示',
				content:'请先完成登录',
				cancelText:'取消',
				confirmText:'去登录',
				success(res) {
					if(res.confirm){
						uni.navigateTo({
							url:'/pages/me/mobile_login'
						})
					}
				}
			})
		},
		openUrl(url) {
			if(!this.hasLogin){
				this.toLogin()
				return false
			}
			uni.navigateTo({
				url: url
			})
		},
		nologinJump(url){
			uni.navigateTo({
				url: url
			})
		}
	}
}
